package com.example.myapplication01.chapter06; // 定义包名

import android.os.Bundle; // 导入Bundle类
import android.os.Environment; // 导入Environment类
import android.util.Log; // 导入Log类
import android.view.View; // 导入View类
import android.widget.CheckBox; // 导入CheckBox类
import android.widget.EditText; // 导入EditText类
import android.widget.TextView; // 导入TextView类

import androidx.appcompat.app.AppCompatActivity; // 导入AppCompatActivity类

import com.example.myapplication01.R; // 导入R类
import com.example.myapplication01.util.FileUtil; // 导入FileUtil类

import java.io.File; // 导入File类
// 定义FileWriteActivity类并实现View.OnClickListener接口
public class FileWriteActivity extends AppCompatActivity implements View.OnClickListener {
    private EditText et_name; // 定义EditText变量et_name
    private EditText et_age; // 定义EditText变量et_age
    private EditText et_height; // 定义EditText变量et_height
    private EditText et_weight; // 定义EditText变量et_weight
    private CheckBox ck_married; // 定义CheckBox变量ck_married
    private String path; // 定义String变量path
    private TextView tv_txt; // 定义TextView变量tv_txt

    @Override
    protected void onCreate(Bundle savedInstanceState) { // 重写onCreate方法
        super.onCreate(savedInstanceState); // 调用父类的onCreate方法
        setContentView(R.layout.activity_file_write); // 设置布局文件

        et_name = findViewById(R.id.et_name); // 通过ID获取EditText控件
        et_age = findViewById(R.id.et_age); // 通过ID获取EditText控件
        et_height = findViewById(R.id.et_height); // 通过ID获取EditText控件
        et_weight = findViewById(R.id.et_weight); // 通过ID获取EditText控件
        ck_married = findViewById(R.id.ck_married); // 通过ID获取CheckBox控件
        tv_txt = findViewById(R.id.tv_txt); // 通过ID获取TextView控件

        findViewById(R.id.btn_save).setOnClickListener(this); // 设置保存按钮的点击监听器
        findViewById(R.id.btn_read).setOnClickListener(this); // 设置读取按钮的点击监听器
    }

    @Override
    public void onClick(View v) { // 重写onClick方法
        if (v.getId() == R.id.btn_save) { // 判断点击的是否是保存按钮
            String name = et_name.getText().toString(); // 获取姓名输入框的内容
            String age = et_age.getText().toString(); // 获取年龄输入框的内容
            String height = et_height.getText().toString(); // 获取身高输入框的内容
            String weight = et_weight.getText().toString(); // 获取体重输入框的内容

            StringBuilder sb = new StringBuilder(); // 创建StringBuilder对象
            sb.append(" 姓名:").append(name); // 追加姓名信息
            sb.append("\n 年龄:").append(age); // 追加年龄信息
            sb.append("\n 身高:").append(height); // 追加身高信息
            sb.append("\n 体重:").append(weight); // 追加体重信息
            sb.append("\n 婚否:").append(ck_married.isChecked() ? "是" : "否"); // 追加婚姻状况信息

            String fileName = System.currentTimeMillis() + ".txt"; // 使用时间戳生成文件名
            String directory; // 定义目录变量
//          DIRECTORY_DOWNLOADS：  Download
            // 外部存储的私有空间
            directory = getExternalFilesDir(Environment.DIRECTORY_DOWNLOADS).toString();
            // 外部存储的公共空间
            //directory = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString();

            path = directory + File.separatorChar + fileName; // 生成文件路径
            Log.d("ning", path); // 打印文件路径到日志
            FileUtil.saveText(path, sb.toString()); // 调用FileUtil的saveText方法保存文件
            ToastUtil.show(this, "保存成功"); // 显示保存成功的提示

        } else if (v.getId() == R.id.btn_read) { // 判断点击的是否是读取按钮
            tv_txt.setText(FileUtil.openText(path)); // 调用FileUtil的openText方法读取文件内容并显示在TextView中
        } else { // 处理未知ID情况
            Log.w("Input", "Unexpected view ID: " + v.getId()); // 打印未知ID的警告日志
        }
    }
}